#include <iostream>
#include <list>
#include <vector>
#include <queue>
using namespace std;

#include "stack.h"
#include "queue.h"
#include "priority_queue.h"


void test_stack()
{
	stack<int> st;
	st.push(1);
	st.push(2);
	st.push(3);
	st.push(4);
	cout << st.size() << endl;
	cout << st.empty() << endl;
	while (!st.empty())
	{
		cout << st.top() << " ";
		st.pop();
	}
	cout << endl;
}

//void test_queue()
//{
//	queue<int> q;
//	q.push(1);
//	q.push(2);
//	q.push(3);
//	q.push(4);
//	cout << q.size() << endl;
//	cout << q.empty() << endl;
//	while (!q.empty())
//	{
//		cout << q.front() << " ";
//		q.pop();
//	}
//	cout << endl;
//}

//void test_priority_queue()
//{
//	priority_queue<int> pq;
//	pq.push(6);
//	pq.push(2);
//	pq.push(3);
//	pq.push(5);
//	pq.push(1);
//	cout << pq.size() << endl;
//	while (!pq.empty())
//	{
//		cout << pq.top() << " ";
//		pq.pop();
//	}
//
//	cout << endl;
//}

int main()
{
	std::priority_queue<int, vector<int>, less<int>> pq;
	pq.push(2);
	pq.push(1);
	pq.push(4);
	pq.push(5);
	pq.push(3);

	while (!pq.empty())
	{
		cout << pq.top() << " ";
		pq.pop();
	}
	cout << endl;

	return 0;
}